<?php

/**
 * Affichage du formulaire permettant d'ajouter une formation, voir formation.html
 * @global type $babBody 
 */
function displayAddFormationForm() {
    global $babBody;

    class displayAddFormationFormClass {

        function displayAddFormationFormClass() {

            /* LABELS */
            $this->formationLabel = bab_translate("Formation Name", $GLOBALS['babAddonFolder']);
            $this->levelLabel = bab_translate("Level", $GLOBALS['babAddonFolder']);
            $this->coordinatorLabel = bab_translate("Coordinator", $GLOBALS['babAddonFolder']);
            $this->departementLabel = bab_translate("Departement", $GLOBALS['babAddonFolder']);

            /* BUTTON */
            $this->addFormationButton = bab_translate("Add formation", $GLOBALS['babAddonFolder']);

            /* NEXTSTAFF */
            $this->listStaff = bab_getGroupsMembers(unsDepartement_getGroupIDByName('uns_Personnel'));
            $this->listLengthStaff = count($this->listStaff);

            /* NEXTDEPARTEMENT */
            $this->departmentsList = unsDepartement_getAllDepartments();
            $this->departmentsListLength = count($this->departmentsList);

            /* NEXTLEVEL */
            $this->listLevel = unsDepartement_getAllLevels();
            $this->listLevelLength = count($this->listLevel);
        }

        function nextLevel() {

            static $k = 0;

            if ($k < $this->listLevelLength) {
                $this->level = $this->listLevel[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

        function nextStaff() {

            static $k = 0;

            if ($k < $this->listLengthStaff) {
                $this->staff = $this->listStaff[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

        function nextDepartement() {

            static $k = 0;

            if ($k < $this->departmentsListLength) {
                $this->departement = $this->departmentsList[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayAddFormationFormClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "addFormation"));
}

/**
 * Affichage du formulaire permettant la modification d'une formation, voir formation.html
 * @global type $babBody 
 */
function displayEditFormationForm() {
    global $babBody;

    class displayEditFormationFormClass {

        function displayEditFormationFormClass() {

            /* INFORMATIONS */
            $this->formation = unsDepartement_getFormation(bab_rp('fid'));

            /* LABELS */
            $this->formationLabel = bab_translate("Formation Name", $GLOBALS['babAddonFolder']);
            $this->levelLabel = bab_translate("Level", $GLOBALS['babAddonFolder']);
            $this->coordinatorLabel = bab_translate("Coordinator", $GLOBALS['babAddonFolder']);

            /* BUTTON */
            $this->editFormationButton = bab_translate("Edit formation", $GLOBALS['babAddonFolder']);

            /* NEXTSTAFF */
            $this->listStaff = bab_getGroupsMembers(unsDepartement_getGroupIDByName('uns_Personnel'));
            $this->listLengthStaff = count($this->listStaff);

            /* NEXTLEVEL */
            $this->listLevel = unsDepartement_getAllLevels();
            $this->listLevelLength = count($this->listLevel);
        }

        function nextLevel() {

            static $k = 0;

            if ($k < $this->listLevelLength) {
                $this->level = $this->listLevel[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

        function nextStaff() {

            static $k = 0;

            if ($k < $this->listLengthStaff) {
                $this->staff = $this->listStaff[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayEditFormationFormClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "editFormation"));
}

/**
 * Affichage de la liste des formations, voir formation.html
 * @global type $babBody 
 */
function displayListFormation() {

    global $babBody;

    class displayListFormationClass {

        function displayListFormationClass() {
            /* INFORMATIONS */
            $this->bred = true;

            /* LABEL */
            $this->departementLabel = bab_translate("Departement", $GLOBALS['babAddonFolder']);
            $this->levelLabel = bab_translate("Level", $GLOBALS['babAddonFolder']);
            $this->formationLabel = bab_translate("Formation", $GLOBALS['babAddonFolder']);
            $this->coordinatorLabel = bab_translate("Coordinator", $GLOBALS['babAddonFolder']);

            /* NEXTFORMATION */
            $this->formationsList = unsDepartement_getAllFormationsBasic();
            $this->formationsListLength = count($this->formationsList);
        }

        function nextFormation() {
            static $k = 0;
            $this->bred = !$this->bred;

            if ($k < $this->formationsListLength) {
                $this->formation = $this->formationsList[$k];
                $this->coordinator = bab_getUserName($this->formation['formation_coordinatorID']);
                $k++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayListFormationClass();
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "listFormation"));
}

/**
 * Affichage du formulaire permettant d'ajouter un groupe TD, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayAddTutorialGroupForm($idFormation) {
    global $babBody;

    class displayAddTutorialGroupFormClass {

        function displayAddTutorialGroupFormClass($idFormation) {
            /* INFORMATIONS */
            $this->idFormation = $idFormation;

            /* LABELS */
            $this->groupNameLabel = bab_translate("Group Name", $GLOBALS['babAddonFolder']);

            /* BUTTONS */
            $this->addTutorialGroupButton = bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']);
        }

    }

    $obj = new displayAddTutorialGroupFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "addTutorialGroup"));
}

/**
 * Affichage du formulaire permettant la modification d'un groupe de TD, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayEditTutorialGroupForm($idFormation) {
    global $babBody;

    class displayEditTutorialGroupFormClass {

        function displayEditTutorialGroupFormClass($idFormation) {
            /* INFORMATIONS */
            $this->idFormation = $idFormation;
            $this->tutorialGroup = unsDepartement_getTutorialGroup(bab_rp('idTutorialGroup'));


            /* LABELS */
            $this->groupNameLabel = bab_translate("Group Name", $GLOBALS['babAddonFolder']);

            /* BUTTONS */
            $this->editTutorialGroupButton = bab_translate("Edit Tutorial Group", $GLOBALS['babAddonFolder']);
        }

    }

    $obj = new displayEditTutorialGroupFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "editTutorialGroup"));
}

/**
 * Affichage du formulaire permettant d'ajouter un groupe de TP, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayAddWorkPraticeGroupForm($idFormation) {
    global $babBody;

    class displayAddWorkPraticeGroupFormClass {

        function displayAddWorkPraticeGroupFormClass($idFormation) {
            /* INFORMATIONS */
            $this->idFormation = $idFormation;

            /* LABELS */
            $this->groupNameLabel = bab_translate("Group Name", $GLOBALS['babAddonFolder']);
            $this->tutorialGroupLabel = bab_translate("Tutorial Group", $GLOBALS['babAddonFolder']);

            /* BUTTONS */
            $this->addWorkPraticeGroupButton = bab_translate("Add Work Pratice Group", $GLOBALS['babAddonFolder']);

            /* NEXYTUTORIALGROUP */
            $this->tutorialGroupsList = unsDepartement_getTutorialGroupsForFormation($idFormation);
            $this->tutorialGroupsListLength = count($this->tutorialGroupsList);
        }

        function nextTutorialGroup() {
            static $counter = 0;
            if ($counter < $this->tutorialGroupsListLength) {
                $this->tutorialGroup = $this->tutorialGroupsList[$counter];
                $counter++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayAddWorkPraticeGroupFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "addWorkPraticeGroup"));
}

/**
 * Affichage du formulaire permettant la modification d'un groupe de TP, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayEditWorkPraticeGroupForm($idFormation) {
    global $babBody;

    class displayEditWorkPraticeGroupFormClass {

        function displayEditWorkPraticeGroupFormClass($idFormation) {
            /* INFORMATIONS */
            $this->idFormation = $idFormation;
            $this->workPraticeGroup = unsDepartement_getWorkPraticeGroup(bab_rp('idWorkPraticeGroup'));

            /* LABELS */
            $this->groupNameLabel = bab_translate("Group Name", $GLOBALS['babAddonFolder']);
            $this->tutorialGroupLabel = bab_translate("Tutorial Group", $GLOBALS['babAddonFolder']);

            /* BUTTONS */
            $this->editWorkPraticeGroupButton = bab_translate("Edit Work Pratice Group", $GLOBALS['babAddonFolder']);
        }

    }

    $obj = new displayEditWorkPraticeGroupFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "editWorkPraticeGroup"));
}

/**
 * Affichage du formulaire permettant d'ajouter une matière, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayAddMaterialForm($idFormation) {
    global $babBody;

    class displayAddMaterialFormClass {

        function displayAddMaterialFormClass($idFormation) {
            $this->idFormation = $idFormation;

            /* LABELS */
            $this->teachingUnitLabel = bab_translate("Teaching Unit", $GLOBALS['babAddonFolder']);
            $this->materialNameLabel = bab_translate("Material", $GLOBALS['babAddonFolder']);
            $this->codeLabel = bab_translate("Code", $GLOBALS['babAddonFolder']);
            $this->coefficientLabel = bab_translate("Coefficient", $GLOBALS['babAddonFolder']);
            $this->professorLabel = bab_translate("Professor", $GLOBALS['babAddonFolder']);
            $this->nbHoursLLabel = bab_translate("Number Hours of Lecture", $GLOBALS['babAddonFolder']);
            $this->nbHoursTLabel = bab_translate("Number Hours of Tutorial", $GLOBALS['babAddonFolder']);
            $this->nbHoursWPLabel = bab_translate("Number Hours of Work Pratice", $GLOBALS['babAddonFolder']);

            /* BUTTON */
            $this->addMaterialButton = bab_translate("Add Material", $GLOBALS['babAddonFolder']);

            /* NEXTSEMESTER */
            $this->semestersList = unsDepartement_getSemesterForFormation($idFormation);
            $this->semestersListLength = count($this->semestersList);

            /* NEXTSTAFF */
            $this->staffsList = unsDepartement_getAllStaff();
            $this->staffsListLength = count($this->staffsList);
        }

        function nextSemester() {
            static $i = 0;

            if ($i < $this->semestersListLength) {
                $this->semester = $this->semestersList[$i];

                $this->teachingUnitsList = unsDepartement_getTeachingUnitsForSemester($this->semester['id']);
                $this->teachingUnitsListLength = count($this->teachingUnitsList);

                $i++;
                return true;
            } else {
                return false;
            }
        }

        function nextTeachingUnit() {
            static $i = 0;
            if ($i < $this->teachingUnitsListLength) {
                $this->teachingUnit = $this->teachingUnitsList[$i];
                $i++;
                return true;
            } else {
                return false;
            }
        }

        function nextStaff() {
            static $k = 0;

            if ($k < $this->staffsListLength) {
                $this->staff = $this->staffsList[$k];
                $k++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayAddMaterialFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "addMaterial"));
}

/**
 * Affichage du formulaire permettant d'ajouter une UE, voir formation.html
 * @global type $babBody
 * @param type $idFormation 
 */
function displayAddTeachingUnitForm($idFormation) {
    global $babBody;

    class displayAddTeachingUnitFormClass {

        function displayAddTeachingUnitFormClass($idFormation) {
            $this->idFormation = $idFormation;

            /* LABELS */
            $this->semesterLabel = bab_translate("Semester", $GLOBALS['babAddonFolder']);
            $this->teachingUnitNameLabel = bab_translate("Teaching Unit", $GLOBALS['babAddonFolder']);
            $this->codeLabel = bab_translate("Code", $GLOBALS['babAddonFolder']);
            $this->coefficientLabel = bab_translate("Coefficient", $GLOBALS['babAddonFolder']);

            /* BUTTONS */
            $this->addTeachingUnitButton = bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']);

            /* NEXTSEMESTER */
            $this->semestersList = unsDepartement_getSemesterForFormation($idFormation);
            $this->semestersListLength = count($this->semestersList);
        }

        function nextSemester() {
            static $i = 0;

            if ($i < $this->semestersListLength) {
                $this->semester = $this->semestersList[$i];
                $i++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayAddTeachingUnitFormClass($idFormation);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "addTeachingUnit"));
}

/**
 * Affichage d'une formation en détail
 * @global type $babBody
 * @param type $id 
 */
function displayFormation($id) {

    global $babBody;

    class displayFormationClass {

        function displayFormationClass($id) {

            /* NEXTSEMESTER */
            $this->semestersList = unsDepartement_getSemesterForFormation($id);
            $this->semestersListLength = count($this->semestersList);

            /* NEXTTEACHINGUNIT */
            $this->tutorialGroupsList = unsDepartement_getTutorialGroupsForFormation($id);
            $this->tutorialGroupsListLength = count($this->tutorialGroupsList);
        }

        function nextSemester() {
            static $k = 0;
            if ($k < $this->semestersListLength) {

                $this->semester = $this->semestersList[$k];

                $this->teachingUnitsList = unsDepartement_getTeachingUnitsForSemester($this->semester['id']);
                $this->teachingUnitsListLength = count($this->teachingUnitsList);

                $k++;
                return true;
            } else {
                return false;
            }
        }

        function nextTeachingUnit() {
            static $i = 0;
            if ($i < $this->teachingUnitsListLength) {
                $this->teachingUnit = $this->teachingUnitsList[$i];

                $this->materialsList = unsDepartement_getMaterialsForTeachingUnit($this->teachingUnit['id']);
                $this->materialsListLength = count($this->materialsList);

                $i++;
                return true;
            } else {
                return false;
            }
        }

        function nextMaterial() {
            static $z = 0;
            if ($z < $this->materialsListLength) {
                $this->material = $this->materialsList[$z];
                $z++;
                return true;
            } else {
                return false;
            }
        }

        function nextTutorialGroup() {
            static $counter = 0;

            if ($counter < $this->tutorialGroupsListLength) {
                $this->tutorialGroup = $this->tutorialGroupsList[$counter];
                $this->workPraticeGroupsList = unsDepartement_getWorkPraticeGroupsForTutorialGroup($this->tutorialGroup['id']);
                $this->workPraticeGroupsListLength = count($this->workPraticeGroupsList);

                $counter++;
                return true;
            } else {
                return false;
            }
        }

        function nextWorkPraticeGroup() {
            static $i = 0;
            if ($i < $this->workPraticeGroupsListLength) {
                $this->workPraticeGroup = $this->workPraticeGroupsList[$i];
                $i++;
                return true;
            } else {
                return false;
            }
        }

    }

    $obj = new displayFormationClass($id);
    $babBody->babecho(bab_printTemplate($obj, $GLOBALS['babAddonHtmlPath'] . "formation.html", "showFormation"));
}

/**
 * Fonction permettant d'ajouter une formation, voir functions/formation.php
 * @global type $babBody 
 */
function addFormation() {

    global $babBody;

    if (null != $_POST['formationName'] && null != $_POST['coordinatorID'] && null != $_POST['levelID'] && null != $_POST['departementID']) {
        unsDepartement_addFormation($_POST['formationName'], $_POST['levelID'], $_POST['coordinatorID'], $_POST['departementID'], $GLOBALS['BAB_SESS_USERID']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonction permettant de modifier une formation, voir functions/formation.php
 * @global type $babBody 
 */
function editFormation() {

    global $babBody;

    if (null != $_POST['formationName'] && null != $_POST['coordinatorID'] && null != $_POST['levelID']) {
        $idFormation = bab_rp('fid');
        //echo $idFormation;
        unsDepartement_editFormation($idFormation, $_POST['formationName'], $_POST['levelID'], $_POST['coordinatorID'], $GLOBALS['BAB_SESS_USERID']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonction permettant de supprimer une formation, voir functions/formation.php 
 */
function deleteFormation() {
    unsDepartement_deleteFormation(bab_rp('fid'));
    displayListFormation();
}

/**
 * Fonction permettant d'ajouter un groupe de TD, voir functions/formation.php
 */
function addTutorialGroup() {
    global $babBody;
    if (!empty($_POST['groupName']) && !empty($_POST['fid'])) {//TODO : Mettre la gestion des droits !
        unsDepartement_addTutorialGroups($_POST['groupName'], $_POST['fid']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
        $formationID = bab_rp('fid');
    }
}


/**
 * Fonction permettant de modifier un groupe de TD, voir functions/formation.php 
 */
function editTutorialGroup() {
    global $babBody;
    if (!empty($_POST['groupName']) && !empty($_POST['fid'])) {//TODO : Mettre la gestion des droits !
        $idTutorialGroup = (bab_rp('idTutorialGroup'));
        unsDepartement_editTutorialGroup($idTutorialGroup, $_POST['groupName']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonction permettant de supprimer un groupe de TD, voir functions/formation.php 
 */
function deleteTutorialGroup() {
    unsDepartement_deleteTutorialGroup(bab_rp('idTutorialGroup'));
}

/**
 * Fonction permettant d'ajouter un groupe de TP, voir functions/formation.php
 */
function addWorkPraticeGroup() {
    global $babBody;
    if (!empty($_POST['groupName']) && !empty($_POST['tutorialGroupID'])) {//TODO : Mettre la gestion des droits !
        unsDepartement_addWorkPraticeGroups($_POST['groupName'], $_POST['tutorialGroupID']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonction permettant de modifier un groupe de TP, voir functions/formation.php 
 */
function editWorkPraticeGroup() {
    $idWorkPraticeGroup = (bab_rp('idWorkPraticeGroup'));
    unsDepartement_editWorkPraticeGroup($idWorkPraticeGroup, $_POST['groupName']);
}

/**
 * Fonction permettant de supprimer un groupe de TP, voir functions/formation.php 
 */
function deleteWorkPraticeGroup() {
    unsDepartement_deleteWorkPraticeGroup(bab_rp('idWorkPraticeGroup'));
}

/**
 * Fonction permettant d'ajouter une UE, voir functions/formation.php
 */
function addTeachingUnit() {
    global $babBody;
    if (!empty($_POST['teachingUnitName']) && !empty($_POST['semesterID']) && !empty($_POST['code']) && !empty($_POST['coefficient'])) {//TODO : Mettre la gestion des droits !
        unsDepartement_addTeachingUnits($_POST['teachingUnitName'], $_POST['code'], $_POST['coefficient'], $_POST['semesterID']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonction permettant d'ajouter une matière, voir functions/formation.php 
 */
function addMaterial() {
    global $babBody;
    if (!empty($_POST['materialName']) && !empty($_POST['teachingUnitID']) && !empty($_POST['code']) && 0 < $_POST['coefficient'] && !empty($_POST['professorID']) && 0 <= $_POST['ndHoursL'] && 0 <= $_POST['nbHoursT'] && 0 <= $_POST['nbHoursWP']) {//TODO : Mettre la gestion des droits !
        unsDepartement_addMaterial($_POST['materialName'], $_POST['code'], $_POST['coefficient'], $_POST['teachingUnitID'], $_POST['professorID'], $_POST['nbHoursL'], $_POST['nbHoursWP'], $_POST['nbHoursT']);
    } else {
        $babBody->addError(bab_translate("All fields are required!", $GLOBALS['babAddonFolder']));
    }
}

/**
 * Fonctions appelées lors de la validation des formulaires d'ajout et de modification
 */
if (isset($_POST['addFormationSubmit'])) {//S'il y a l'ajout d'une formation, on execute la fonction d'ajout
    addFormation();
} else if (isset($_POST['editFormationSubmit'])) {//S'il y a la modification d'une formation, on execute la fonction de modification
    editFormation();
} else if (isset($_POST['addTutorialGroupSubmit'])) {//S'il y a l'ajout d'un groupe de TD, on execute la fonction d'ajout
    addTutorialGroup();
} else if (isset($_POST['editTutorialGroupSubmit'])) {//S'il y a la modification d'un groupe de TD, on execute la fonction de modification
    editTutorialGroup();
} else if (isset($_POST['addWorkPraticeGroupSubmit'])) {//S'il y a l'ajout d'un groupe de TP, on execute la fonction d'ajout
    addWorkPraticeGroup();
} else if (isset($_POST['editWorkPraticeGroupSubmit'])) {//S'il y a la modification d'un groupe de TP, on execute la fonction de modification
    editWorkPraticeGroup();
} else if (isset($_POST['addTeachingUnitSubmit'])) {//S'il y a l'ajout d'une UE, on execute la fonction d'ajout
    addTeachingUnit();
} else if (isset($_POST['addMaterialSubmit'])) {//S'il y a l'ajout d'une matière, on execute la fonction d'ajout
    addMaterial();
}

/**
 * Affichage des onglets en fonction des droits de l'utilisateur
 */
global $babBody;
$babBody->addItemMenu("listFormation", bab_translate("List Formation", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=listFormation");
if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
    // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
    //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
    $babBody->addItemMenu("addFormation", bab_translate("Add formation", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addFormation");
}

/**
 * Par defaut on liste les formations
 */
$do = bab_rp('do', 'listFormation');
$formationID = bab_rp('fid');

switch ($do) {

    case "addFormation"://Ajout d'une formation, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Add formation", $GLOBALS['babAddonFolder']);
            displayAddFormationForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "listFormation"://Affichage des formations, on exécute la fonction d'affichage des formations
        $babBody->title = bab_translate("Formation List", $GLOBALS['babAddonFolder']);
        displayListFormation();
        break;
    case "showFormation"://Affichage des formations en détail, on éxécute la fonction d'affichage des formations (en détail)
        if (!empty($formationID)) {
            displayFormation($formationID);
            $babBody->addItemMenu("showFormation", bab_translate("Show Formation", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=showFormation");
            if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
                // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
                //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
                $babBody->addItemMenu("addTutorialGroup", bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTutorialGroup&fid=$formationID");
                $babBody->addItemMenu("addWorkPraticeGroup", bab_translate("Add WorkPratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addWorkPraticeGroup&fid=$formationID");
                $babBody->addItemMenu("addTeachingUnit", bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTeachingUnit&fid=$formationID");
                $babBody->addItemMenu("addMaterial", bab_translate("Add Material", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addMaterial&fid=$formationID");
            }
        }else
            $babBody->addError(bab_translate("No Formation selected !", $GLOBALS['babAddonFolder']));
        break;
    case "addMaterial"://Ajout d'une matière, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            if (!empty($formationID)) {
                displayAddMaterialForm($formationID);
                $babBody->addItemMenu("addTutorialGroup", bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTutorialGroup&fid=$formationID");
                $babBody->addItemMenu("addWorkPraticeGroup", bab_translate("Add WorkPratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addWorkPraticeGroup&fid=$formationID");
                $babBody->addItemMenu("addTeachingUnit", bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTeachingUnit&fid=$formationID");
                $babBody->addItemMenu("addMaterial", bab_translate("Add Material", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addMaterial&fid=$formationID");
            } else
                $babBody->addError(bab_translate("Need Formation", $GLOBALS['babAddonFolder']));
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "addTutorialGroup"://Ajout d'un groupe de TD, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            if (!empty($formationID)) {
                displayAddTutorialGroupForm($formationID);
                $babBody->addItemMenu("addTutorialGroup", bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTutorialGroup&fid=$formationID");
                $babBody->addItemMenu("addWorkPraticeGroup", bab_translate("Add WorkPratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addWorkPraticeGroup&fid=$formationID");
                $babBody->addItemMenu("addTeachingUnit", bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTeachingUnit&fid=$formationID");
                $babBody->addItemMenu("addMaterial", bab_translate("Add Material", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addMaterial&fid=$formationID");
            } else
                $babBody->addError(bab_translate("Need Formation", $GLOBALS['babAddonFolder']));
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "addTeachingUnit":////Ajout d'une UE, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            if (!empty($formationID)) {
                displayAddTeachingUnitForm($formationID);
                $babBody->addItemMenu("addTutorialGroup", bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTutorialGroup&fid=$formationID");
                $babBody->addItemMenu("addWorkPraticeGroup", bab_translate("Add WorkPratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addWorkPraticeGroup&fid=$formationID");
                $babBody->addItemMenu("addTeachingUnit", bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTeachingUnit&fid=$formationID");
                $babBody->addItemMenu("addMaterial", bab_translate("Add Material", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addMaterial&fid=$formationID");
            } else
                $babBody->addError(bab_translate("Need Formation", $GLOBALS['babAddonFolder']));
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "addWorkPraticeGroup"://Ajout d'un groupe de TP, on éxécute la fonction d'affichage du formulaire d'ajout
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            if (!empty($formationID)) {
                displayAddWorkPraticeGroupForm($formationID);
                $babBody->addItemMenu("addTutorialGroup", bab_translate("Add Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTutorialGroup&fid=$formationID");
                $babBody->addItemMenu("addWorkPraticeGroup", bab_translate("Add WorkPratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addWorkPraticeGroup&fid=$formationID");
                $babBody->addItemMenu("addTeachingUnit", bab_translate("Add Teaching Unit", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addTeachingUnit&fid=$formationID");
                $babBody->addItemMenu("addMaterial", bab_translate("Add Material", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=addMaterial&fid=$formationID");
            } else
                $babBody->addError(bab_translate("Need Formation", $GLOBALS['babAddonFolder']));
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;

    case "deleteFormation"://Suppression d'une formation, on exécute la fonction de suppression
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Formation List", $GLOBALS['babAddonFolder']);
            deleteFormation();
            $do = "listFormation";
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "editFormation"://Modification d'une formation, on exécute la fonction d'affichage du formulaire de modification
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Edit Formation", $GLOBALS['babAddonFolder']);
            $babBody->addItemMenu("editFormation", bab_translate("Edit Formation", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=editFormation");
            displayEditFormationForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;

    case "deleteWorkPraticeGroup"://Suppression d'un groupe de TP, on exécute la fonction de suppression
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            //$babBody->title = bab_translate("Add formation", $GLOBALS['babAddonFolder']);
            deleteWorkPraticeGroup();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "editWorkPraticeGroup"://Modification d'un groupe de TP, on exécute la fonction d'affichage du formulaire de modification
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Edit Work Pratice Group", $GLOBALS['babAddonFolder']);
            $babBody->addItemMenu("editWorkPraticeGroup", bab_translate("Edit Work Pratice Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=editFormation");
            displayEditWorkPraticeGroupForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;

    case "deleteTutorialGroup"://Suppression d'un groupe de TD, on exécute la fonction de suppression
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            deleteTutorialGroup();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
    case "editTutorialGroup"://Modification d'un groupe de TD, on exécute la fonction d'affichage du formulaire de modification
        if (bab_isAccessValid('unsDepartement_rights_groups', 1001)) {
            // Après avoir octroyé les droits pour la gestion des départements, nous avons utilisé la méthode bab_isAccessValid($table, $ID) afin de vérifier les droits d'accès de l'utilisateur courant. 
            //On peut voir que l’ID de l’objet (1001) correspond bien à celui défini pour la classe macl.
            $babBody->title = bab_translate("Edit Work Pratice Group", $GLOBALS['babAddonFolder']);
            $babBody->addItemMenu("editTutorialGroup", bab_translate("Edit Tutorial Group", $GLOBALS['babAddonFolder']), $GLOBALS['babAddonUrl'] . "user&idx=formation&do=editFormation");
            displayEditTutorialGroupForm();
        } else {
            $babBody->addError(bab_translate("Access denied", $GLOBALS['babAddonFolder']));
        }
        break;
}
/**
 * Affichage en gras de l'onglet actuel
 */
$babBody->setCurrentItemMenu($do);
?>
